iT邦幫忙

2024 iThome 鐵人賽

DAY 26
0

Day 25 放入了原生元件的程式碼。

接著使用 JavaScript 將該 Module 導入。

在專案根目錄中,加入以下檔案。

// ProgressNotification.js

import { NativeModules } from 'react-native';
const { ProgressNotification } = NativeModules;

export default ProgressNotification;

然後在 App.js 宣告模擬下載進度的方法 startDownload,以及暫存下載進度數值的變數 [progress, setProgress]。最後則是相關的按鈕及文字。

// App.js

const [progress, setProgress] = useState(0);

  const styles = StyleSheet.create({
    container: {
      flex: 1,
      justifyContent: 'center',
      alignItems: 'center',
      padding: 20,
    },
    progressText: {
      fontSize: 18,
      marginBottom: 20,
    },
  });

  const startDownload = async () => {
    setProgress(0);
    for (let i = 0; i <= 100; i += 10) {
      setProgress(i);
      await ProgressNotification.showProgressNotification(
          'Downloading',
          `Progress: ${i}%`,
          i
      );
      // Simulate a delay (e.g., actual download time)
      await new Promise(resolve => setTimeout(resolve, 1000));
    }
    await ProgressNotification.hideProgressNotification();
    setProgress(100);
  };

上一篇
[Day 25] 套用 Module 至 React Expo 專案
下一篇
[Day 27] 解決 Module 未能初始化問題
系列文
跨平台協同:在 React Native 和 Kotlin 應用中實現無縫交互 -以 Notification 為例30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言